\subsection{Objectifs initiaux}
\label{sec:initial_goals}

Une réunion de démarrage du projet a eu lieu en début du stage pour dégager les 
fonctionnalités que l' outil développé devait fournir, ce qui a ainsi permis de
fixer un axe de développement et un point de départ. Les besoins suivants ont
été répertoriés:%

\begin{itemize}
\item La création aisée de profils de suivi.
\item Une perspective et des vues propres au suivi.
\item La définition du noyau fonctionnel de la plateforme avec des possibilités d'extensions.
\item L'adoption progressive de \textsc{\Gls{maven}} comme système de build pour
les différents projets qui composeront la plateforme.
\item Le contrôle de qualité sur le code pour faciliter la maintenance.\\%
\end{itemize}

\subsection{Qualit\'e de code}
\label{sec:code_quality}

La production d'un code bien documenté a été le premier moyen de contrôler la qualité. La génération 
d’une \textsc{Javadoc} pour l’application permet la description des API créées.

J’ai aussi eu à mettre en place l’outil \textsc{\Gls{checkstyle}} qui permet le
contrôle du respect des conventions de codage, la détection des problèmes de conception de classe, du code dupliqué
et bien autres. Il a ainsi été mis en place des conventions de codage spécifique dérivées des conventions 
Sun(\href{http://java.sun.com/docs/codeconv/}{http://java.sun.com/docs/codeconv/})
pour la qualité de code de tous les projets composants la plateforme.

\subsection{Organisation des tâches}
\label{sec:mylyn_google_code}

Pendant toute la durée du stage j'ai utilisé l'\textit{\gls{issue_tracker}} de
\textsc{Google Code} comme outil de planning (voir \ref{fig:google_code_task}). 
L'utilisation de cet outil permet la déclaration de tâches avec assignation
d’une catégorie (Task, Defect, Bug, \ldots) et aussi le suivi de l'état d'une tâche (Fixed, WontFix,
Verified, New, \ldots). Ce qui a permis de faire non seulement du planning mais
aussi de déclarer les nombreux bugs lors de l'utilisation de l'application
développée ou encore de planifier les améliorations.

\begin{figure}[H]
\centering
\colorbox{imgBackground}{\includegraphics[width=0.80\textwidth]{images/google_code.png}}
\caption{Présentation des tâches sur google code}\label{fig:google_code_task}
\end{figure}

L'avantage de l'utilisation de cet outil est le fait de pouvoir gérer ces
tâches directement dans l'environnement de développement \textsc{\Gls{eclipse}}.
Ce qui a été possible grâce au plugin \textsc{\Gls{mylyn}} couplé au connecteur
spécifique à \textsc{Google Code}.

\textsc{\Gls{mylyn}} est une framework de gestion du cycle de vie de tâches et
applications pour la plate-forme \textsc{\Gls{eclipse}}. Le plugin propose les
fonctionnalités suivantes:\\

\begin{itemize}
  \item La création de tâche dans l'environnement de développement grâce à son
  éditeur intégré.
  \item L'attribution d'une estimation de la durée de traitement des tâches
  ainsi que des dates de prise en charge.
  \item La présentation des tâches par dates ou par états (voir
  \ref{fig:mylyn_task_view}).
  \item L'enregistrement du temps effectué sur une tâche. 
  \item L'enregistrement du contexte (ex: fichiers modifiés pendant que la
  tâche était active).
  \item Bien d'autres fonctionnalités.\\
\end{itemize}

\begin{figure}[H]
\fcolorbox{imgBackground}{white}{\begin{minipage}{\textwidth}
\centering
\subfloat{\label{fig:mylyn_calendar}\includegraphics[scale=0.55]{images/mylyn_cal.png}}
\ \ \ \ \ \ \  
\subfloat{\label{fig:mylyn_flat}\includegraphics[scale=0.53]{images/mylyn_flat.png}}
\end{minipage}
}
\caption{Présentation des tâches par \Gls{mylyn}: à
gauche par dates et à droite par états}\label{fig:mylyn_task_view}
\end{figure}

